Sound Object Model Refactorings
نویسندگان
چکیده
Refactorings are usually proposed in an ad hoc way because it is hard to guarantee their soundness with respect to a formal semantics. Usually, even using refactoring tools, developers have to rely on compilation and tests in order to improve their confidence that semantics is preserved, which may not be satisfactory to critical software development. We propose a set of semantics-preserving transformations based on a refinement theory that we propose for Alloy. This set of transformations is shown to be relatively complete in the sense that it can derive a representative set of model transformations, and proven sound with respect to a formal semantics for Alloy in a theorem prover. Moreover, we show how they can be composed to derive refactorings and optimizations. They are a powerful tool for reasoning about object model transformations, and can be used to improve refactoring tools.
منابع مشابه
A Catalogue of Refactorings for Model-to-Model Transformations
In object-oriented programming, continuous refactorings are used as the main mechanism to increase the maintainability of the code base. Unfortunately, in the field of model transformations, such refactoring support is so far missing. This paper tackles this limitation by adapting the notion of refactorings to model-to-model (M2M) transformations. In particular, we present a dedicated catalogue...
متن کاملAutomatically Checking the Correctness of Feature Model Refactorings
Software Product Line evolution can be performed by refactorings, which involve not only program refactorings improving code structure, but also feature model (FM) refactorings in order to improve configurability. However, the current catalog of FM refactorings is not complete, and is difficult to propose new sound refactorings. Moreover, there is no guideline how to apply such catalog in a ref...
متن کاملModelchecking Correctness of Refactorings - Some Experiments
Refactorings are changes made to programs, models or specifications with the intention of improving their structure and thus making them clearer, more readable and re-usable. Refactorings are required to be behaviour-preserving in that the external behaviour of the program/model/specification remains unchanged. In this paper we show how a simple type of refactorings on object-oriented specifica...
متن کاملTool Support for Refactoring Duplicated OO Code
Code duplication is an important problem in application maintenance. Tools exist that support code duplication detection. However, few of them propose a solution for the problem, i.e. refactorings. We propose an approach that uses the information given by code duplication detection to guide the refactorings of OO applications. 1 Code Duplication and Refactorings: Two Poles of a Magnet Code dupl...
متن کاملGeneric Model Refactorings
Many modeling languages share some common concepts and principles. For example, Java, MOF, and UML share some aspects of the concepts of classes, methods, attributes, and inheritance. However, model transformations such as refactorings specified for a given language cannot be readily reused for another language because their related metamodels may be structurally different. Our aim is to enable...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2006